%{
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#include "parser.tab.h"
%}

digit [0-9]
letter [A-Za-z]
id ({letter}|_)({letter}|{digit}|_)*
string \".*\"
number    [0-9]+[.]?[0-9]*

%%
{number}       { sscanf(yytext,"%lf",&yylval.num); return NUMBER; }
{id}                     { strncpy(yylval.str, yytext, 99); yylval.str[sizeof(yylval.str) - 1] = '\0'; return STRING;  }
{string}                 { strncpy(yylval.str, yytext, 99); yylval.str[sizeof(yylval.str) - 1] = '\0'; return STRING; }

[ \t]                    /* 忽略空白 */
\n                       { return '\n'; }
"+"                      { return '+'; }
"-"                      { return '-'; }
"*"                      { return '*'; }
"/"                      { return '/'; }
"("                      { return '('; }
")"                      { return ')'; }
">"                      { return '>'; }
"<"                      { return '<'; }
"="                      { return '='; }


%%
int   yywrap()  { return 1; }
